HSPDA provides high speed downlink access from an UMTS base station (Node B) to a plurality of user entities by flexible allocation of downlink resources.
In prior art document WO2005/03418 FIG. 3, the protocol layers involved in the communication between user entity (e.g. mobile station), Node B (base station), RNC (implemented by parts CRNC, and SRNC) has been shown. The user entity involves the following layers: PHY (physical layer), MAC-hs (HSPDA Media Access Control layer), MAC_d (Medium Access Control Device) RLC (Radio Link Control layer). Node B communicates via the MAC-hs layer with the user entity and via a frame protocol HS_DSCH-FP with the RNC, respectively.
According to the HSPDA specifications, the RLC operates above the MAC-hs protocol in the protocol stack. The RLC layer provides the connection to upper communication layers such as TCP/IP, both in the user entity and the RNC. Both the RLC protocol and the MAC-hs protocol are ARQ (Automatic Repeat Request) protocols featuring retransmissions of incorrectly received protocol data units.
As the name implies, the High Speed Downlink Packet Access (HSDPA) technology introduced in 3GPP provides substantial data capacity advantages. The technical specification 3GPP TS 25.321 concerns the MAC (Media Access Control) architecture and the various entities form a functional point of view. 3GPP 25.211 basically describes how information from the MAC-layers is mapped onto the channels sent out on the air.
In contrast with release 99 (GSM/EDGE) which exclusively defines channels between the RNC and the UE, HSPDA introduced the HS-DSCH (High Speed Dedicated Shared Channel) channel which are terminated between the user entity and the base station set (NODE B) also denoted Node B. The HSPDA Medium Access Control (MAC-hs) enables increased packet data throughput due to link adaptation (Adaptive Modulation Coding—i.e. 16 QAM or QPSK) and fast physical layer retransmission combining. Hence, besides incorporating the WCDMA access technology, Node B carries out scheduling and Hybrid Automatic Repeat Request (H-ARQ) retransmissions on the channel between the user entity and Node B. The benefits and the features of the above system have for instance been described in “WCDMA evolved—High Speed packet data services”, by Stefan Parkwall et al., Ericsson review No. 2, 2003.
The HSPDA transmission makes use of a 2 ms transmission time interval (three time slots).
On the downlink side there is provided: Several common data channels 1, a Downlink Physical Channel (DPCH—R99) dedicated signal radio bearer 2 for each user entity using HSPDA transmissions; a common High Speed Shared Control Channel (HS-SCCH) for control signalling 3, a number of High Speed-Physical Downlink Shared Channels (HS-PDSCH) common user data channels 4-5, which are allocated HSPDA data in a flexible manner.
On the uplink side there is provided: a High Speed-Dedicated Physical Control Channel (HS-PDCCH) 6—for, among other things, providing channel quality information, CQI, and HSPDA automatic request signalling—and an uplink dedicated channel associated with each HSPDA user comprising control information and data, 7.
HSDPA (High Speed Downlink Packet Access) facilitates high speed transmission on the downlink from Node-B and to the user entity (UE). Under HSPDA, Node-B buffers incoming downlink end-user data and utilises an internal scheduling entity to determine on which particular channel and when to transmit buffered data according to a scheduling routine. To aim in the scheduling decision, Node-B continuously receives channel quality estimates from the UE entities. Node-B also has knowledge about UE receive capabilities.
Node-B can transmit MAC-hs PDUs (Media Access Control High Speed Protocol Data Units) to the UEs at a pace of up to 500 times per second. At each 2 ms transmit opportunity (TTI transmit time interval) Node-B can vary the MAC-hs PDU size depending on the buffered amount of data, the channel quality estimates, the UE capabilities and the granted amount of downlink codes available. MAC-hs data for 1 UE up to 4 UEs can be scheduled at each 2 ms transmit opportunity utilising code division (WCDMA) among the scheduled UEs.
The UE decodes the HS-SCCH (High Speed Shared Control Channel), and upon a successful CRC checksum the UE continues to decode the HS-PDSCH (High Speed Physical Data Shared Channel). Depending on the outcome of the HS-SCCH and HS-PDSCH, the UE transmits a reception feedback back to the peer Node-B.
The reception feedback is interpreted by the Node-B transmitter, which upon a negative feedback or absence of feedback (DTX) indicating a possible reception failure for the UE, retransmits data.
According to specification 3GPP 25.321 chapter 11.6.1 and 11.6.2, there is utilized a HSPDA N-channel stop and wait (SAW) ARQ, implying that a number of 1-8 HARQ processes may exist at a time per user entity. The timing relation between the downlink HS-DPCCH channel and the uplink ACK/NACK transmissions on the HS-PDSCH are fixed, that is, the ACK, NACK messages are arranged to be transmitted, such that there are always 7,5-9,5 TTI slots between a transmission and the associated expected ACK/NACK from a user entity. This allows for Node-B to easily determine when to retransmit data in the case of a missing response to a first transmission. The 8 HARQ processes mentioned above corresponds to the number of downlink transmissions to a given entity which can be accomplished before the NACK/ACK pertaining to the first downlink transmission is received at the base station.
Base Station and User Entity
In FIGS. 12 and 13, diagram of a base station set (Node B) and a user entity (UE), respectively, are shown.
The base station set, node B, comprises a MAC-hs control message handler, a scheduler, a number of input buffers storing segments of data streams pertaining to individual user entities, UE1-UEn, corresponding to a number of HARQ processes for handling simultaneous transmissions to several UE's, that is, for each user entity as well, Layer 1 processing means for transferring data from respective HARQ processes. The base station moreover comprises a CQI decoder, a user entity (UE) feedback decoder and a layer 1 receiver.
Each HARQ process in a given user entity is mirrored in Node B, and corresponds to a given data stream which is received by a particular user entity. As explained above, more data streams may be used by the user simultaneously corresponding to one application or more simultaneous applications running on the user entity apparatus, possibly with different QoS requirements. Moreover, consecutive data may be transmitted for the same user entity, the consecutive transmission belonging to different HARQ processes.
Moreover, Node B comprises at least one specific input buffer queue dedicated to a corresponding set of HARQ processes.
In FIG. 13, a user entity (MAC) arrangement according to the invention is shown comprising HS-SCCH decoding means, for decoding the downlink HD-PDSCH channel, arrangements consisting of a number J of HARQ processes, a number N of reordering and disassembly queues and a RLC (Radio Link Control) layer means. Moreover, there is provided UE (User Entity) feedback processing means and layer 1 processing for providing feed-back on the HS-DPCCH channel.
The reordering queue distribution function routes the MAC-hs PDU's to the correct reordering buffer based on a Queue ID. The reordering entity reorders received MAC-hs PDU's according to the received TSN (transmit sequence number). MAC-hs PDU's with ascending TSN's (MAC hs Transmit Sequence Numbers) are delivered to the disassembly function. To recover from erroneous conditions when MAC-hs PDU are missing the same avoidance handling as described in 3GPP TS 25.321-11.6.2, re-ordering release timer and window based stall avoidance, shall be used. There is one reordering entity for each Queue ID configured at the UE. The disassembly entity is responsible for the disassembly of MAC-hs PDU's. When a MAC-hd header is removed, the MAC-d PDU's are extracted and any padding bits are removed. Then the MAC-d PDUs are delivered to the higher (RLC) layer. These features have been described in 3GPP TS 25.321-11.6.2.3.
The RLC Layer
The RLC layer in 3GPP can operate in three modes, transparent mode, unacknowledged mode and acknowledged mode (AM), which will be focused upon in the following.
In AM mode, incorrectly received PDU's (Protocol Data Units) discovered by the receiving side are effected to be retransmitted by the transmitting side by means of an ARQ (Automatic Repeat Request) protocol.
An AM RLC entity consists of a transmitting side, and a receiving side, where the transmitting side of the AM RLC entity transmits RLC PDU's and the receiving side of the AM RLC entity receives RLC PDU's.
An AM RLC entity resides in the UE (user equipment) and in the RNC (radio network control), respectively. The transmitting side segments and/or concatenates RLC SDU's (service data units) into PDU's of a fixed length. The receiving side reassembles received PDU's into RLC SDU's and transmits these to higher data layers. Likewise, SDU's are received from the layer above the RLC layer. In AM mode, the RLC layer is responsible for the delivery of SDU's in consecutive order.
In FIG. 4 of the above document WO2005/034418, an implementation of the acknowledged mode (AM) UE (base station)/UTRAN (Radio access node/base station (Node B)) entity is shown.
To facilitate the in-sequence delivery, each RLC PDU is given a sequence number, 0-4095, whereby the transmitter transmits PDU's with increasing sequence number modulo 4096. Using the sequence number, the receiver can detect a missing PDU. The receiver can be configured to transmit a STATUS message upon the detection of a missing PDU. The STATUS report may contain positive or negative acknowledgement of individual RLC PDU's received by the peer RLC entity. The transmitter can also request a STATUS messages from the receiver by setting a Poll flag in the PDU header. The conditions for that the transmitter sets the Poll flag are among others:
Last PDU in Buffer.
When only one PDU exists in the input buffer.
Poll Timer Expires.
When the timer_poll expires, that is, the transmitter requested a STATUS earlier and initiated a timer_poll to reassure that a response is received.
Window Based.
A transmitter is restricted in the amount of “outstanding data” it can transmit until a STATUS confirms the reception to the receiving side. “Outstanding data” relates to the earliest unacknowledged PDU.
Note that the above description of the functionality of the RLC layer only constitutes a small excerpt of those features actually provided.
Selective retransmissions are possible, e.g. if STATUS message indicates PDU with sequence number (SN) 3, 6 and 13 are missing, only 3, 6 and 13 needs to be retransmitted.
MAC-hs Layer
In the following description regarding the MAC-hs layer:                the MAC-hs transmitter is the Node-B.        the MAC-hs receiver is the UE equipment being either a mobile station or a pc-card attached to a PC or any other equipment capable of receiving downlink 3GPP HSDPA traffic.        
MAC-hs PDU's are numbered by modulo TSN (Transport Sequence Number) cycling through the field 0 to 63.
As mentioned above, the MAC-hs protocol provides multiple Hybrid-ARQ processes (HARQ) whereby for each HARQ process, the transmitter transmits a MAC-hs PDU and awaits either an ACK indicative of reception at the receiver or Negative Acknowledgement (NACK) indicative that the receiver did not receive the MAC-hs PDU or absence of a response (DTX). The round trip time concerning the time from MAC-hs PDU transmission until reception of the feedback (ACK/NACK) is fixed. Upon the reception of a NACK or DTX, the MAC-hs transmitter retransmits the MAC-hs PDU. Since the round trip time is long in relation to the MAC-HS PDU size and since multiple users may be adapted to receive packets in time multiplexed fashion, multiple HARQ processes are provided. If only one HARQ process was available, the duty cycle (i.e. actual transmission time/total possible transmission time) would be low. By using multiple HARQ processes, one HARQ process can await a response, while another HARQ process, or multiple HARQ processes, may transmit. Thereby, the duty cycle can be rendered close to 100 percent.
The MAC-hs protocol is semi-reliable, that is, the MAC-hs transmitter may choose to discard or delete a MAC-hs PDU that has been transmitted and possibly been retransmitted to the MAC-hs receiver.
By discarding a MAC-hs for retransmission, unnecessary transmissions are prevented over the radio link in case the MAC-hs receiver has moved to another cell or has powered down or if the receiver for any other reason is not capable of receiving data. Therefore, buffered packets are discarded at the transmitter either at the expiry of a timer set at a predetermined time (e.g. T1) corresponding to the first transmission of the packet in question or when a maximum number of retransmissions of the packet in question have been performed or based upon a too long waiting time in the input data buffer, whatever appears first or a combination thereof.
The MAC-hs receiver utilizes a receiver window for the purpose of mitigating the effect of unnecessary transmissions when PDU's are received in non-ascending sequence order (which can occur due to retransmissions). Whenever a MAC-hs PDU is successfully received with a TSN (Transmit Sequence Number) equal to the next expected TSN, the receiver can deliver PDU's to the RLC layer. Depending on whether the subsequent TSN number (i.e. next expected TSN+1) has already been successfully received, that MAC-hs PDU can also be delivered and so forth. The receiver window is updated accordingly. Delivery to the RLC layer from the MAC-hs protocol is done in consecutive order, also denoted in-sequence.
To recover from the situation where e.g. the transmitter has discarded a MAC-hs PDU, the receiver utilizes two mechanisms I)+II) to solve the problem:
I) Timer Based Stall Avoidance:
At the reception of a PDU with TSN>next_expected_TSN the receiver starts a timer denoted T1. When the timer expires, the receiver makes proper actions to allow for subsequent PDU's to be received. The exact details are described in 3GPP 25.321 Chapter 11.6.2.3.2. The behavior is shown in FIG. 1.
At time 1) a PDU with TSN=4 is received, the next expected transmit sequence number being 3, whereby timer T1 starts.
At time 2) PDU's with TSN 6 and 7 are received.
At time 3), the timer expires, whereby TSN=4 is delivered to the RLC layer. Next expected_TSN=5. A new timer T1 starts since next_expected_TSN=5 is not received and at least one PDU exists in receiver window.
4) TSN 6 and 7 remains in buffer.
II) Window Based Stall Avoidance:
Upon the reception of a PDU with TSN outside the receiver window, the receiver shall shift its “right” (or “upper”) window edge and highest_received_TSN to the received TSN. Next_expected_TSN shall be updated to highest_received_TSN−receiver window size+1| previously PDU's stored in window that now fall outside the window shall be delivered to RLC layer. This has been illustrated in FIG. 2.
Assume that the receiver window size is of length 8.
At time 1) PDU TSN 4 has been received, which is within the receiver window, TSN=3 is next_expected_TSN, timer T1 is running.
At time 2) TSN=12 is received, which is outside the receiver window thus causing the window to advance, the next_expected_TSN is updated, and PDU TSN=4 is delivered to RLC. A new timer T1 starts since next_expected_TSN is not received and a PDU exists in the receiver window.
MAC-hs Reset:
MAC-hs is used to restart the MAC-hs protocol, where the MAC-hs receiver delivers stored data in its receiver window to RLC layer and sets its next_expected_TSN=0 and highest_received_TSN=63. It is used upon conditions such as handover between cells.
Problems with Existing Solutions
Assume the case when a TCP session is started from the fixed network to a peer user residing in a 3GPP HSDPA network having e.g. a pc-card inserted in a laptop. The TCP transmitter at the fixed network starts by transmitting very low amount of data. Assume further that the RLC layer resides in the Radio Network Controller (RNC) and that it transmits the data to Node-B within 2 RLC PDU's. The two PDU's are first stored in Node-B incoming data buffer. FIG. 3 shows the situation.
Assume moreover, that Node-B transmits both RLC PDU's in one MAC-hs PDU with TSN=0. Assume now that the transmission fails and Node-B repeats transmission of the PDU until it is finally discarded at the Node-B. Node-B then advances its window to sequence number 1 as its BoW (Bottom of Window). FIG. 4 shows the situation.
When subsequently the RLC poll timer expires and RLC retransmits the last RLC PDU (TSN=46). Node-B will receive the RLC PDU data, and transmit the data in one MAC-hs PDU to UE. Assume successful reception occurs. UE will start its T1 timer since received TSN< >next_expected_TSN.
It is assumed that the time from the first transmission in Node-B until Node-B discards a MAC-hs PDU is shorter than Poll_timer to avoid that duplicate RLC PDU's are buffered in Node-B. FIG. 5 shows the situation.
If we now assume that T1 timer in MAC-hs receiver<Poll timer in RLC, subsequently the T1 timer in UE will expire and the PDU will be received by RLC receiver (RLC TSN=46). RLC receiver in UE will transmit a STATUS message indicating the absent RLC PDU with TSN=45. RLC transmitter will then retransmit RLC PDU with TSN=45 and upon successful reception at the UE MAC-hs receiver RLC layer can deliver RLC PDU's 45 and 46 to higher layer.
An other scenario can occur if T1 timer in MAC-hs receiver>Poll timer in RLC then yet another RLC PDU 46 will be sent—but since T1 timer is still running nothing will be sent to RLC receiver until T1 expires. When T1 expires in the UE multiple copies of TSN 46 will be received by the RLC receiver.
As described above, the UE will now send a STATUS indicating the absence of TSN=45, and upon the reception of the STATUS message in RLC, the RLC will retransmit the TSN=45. If we assume successful delivery of the RLC PDU with TSN=45 via the MAC-hs layer the UE RLC layer can now deliver the complete data sequence TSN=45 and 46 to its upper layer.
We can conclude that the delay until the PDU's are correctly received at the RLC receiver is Poll_timer+RLC PDU transmit time from RLC in RNC to MAC-hs in UE+T1 timer in UE+STATUS control message UL transmit time from UE to RLC+RLC PDU transmit time from RLC in RNC to RLC in UE.
For the case of a higher traffic load, e.g. when TCP is running at high speed, the problem will be less noticeable, because the UE will more likely start its T1 timer because more transmission occurs between Node-B and UE. For a high load traffic case, either the 1st (timer based) or 2nd (window based) recovery mechanism will cause Ue to deliver data to RLC. If configured to transmit STATUS upon missing PDU's, the UE will send a STATUS. The transmit RLC entity will then receive a STATUS message prior to that the poll_timer expires.
In conclusion, where two ARQ (Automatic Repeat Request) in-sequence delivery protocol layers operate in the same protocol stack, and when the underlying ARQ protocol discard data, the above problem of data delay, as seen by the application operating above the two ARQ protocols, can occur. If the problem occurs during low traffic load situations it may cause a relatively long delay until an automatic resolution occurs.